package cn.iocoder.yudao.module.iot.service.device.energy;

import cn.iocoder.yudao.module.iot.core.mq.message.IotDeviceMessage;
import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDO;

import java.util.List;
import java.util.Map;

/**
 * IoT 设备【能源数据】Service 接口
 *
 * @author 芋道源码
 */
public interface IotDeviceEnergyService {

    /**
     * 处理设备能源数据
     *
     * @param device 设备
     * @param message 设备消息
     */
    void processDeviceEnergyData(IotDeviceDO device, IotDeviceMessage message);

    /**
     * 获取设备能源数据历史记录
     *
     * @param deviceId 设备编号
     * @param limit 限制数量
     * @return 能源数据历史记录
     */
    List<Map<String, Object>> getDeviceEnergyHistory(Long deviceId, int limit);

    /**
     * 获取设备最新能源数据
     *
     * @param deviceId 设备编号
     * @return 最新能源数据
     */
    Map<String, Object> getLatestDeviceEnergy(Long deviceId);
} 